﻿/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  alarm模块  
  Function List:   
     SYS_AlarmOpen()
         |
         |
        \ /
    SYS_AlarmGetInput()/SYS_AlarmGetOutput()
         |
         |
        \ / 
    SYS_AlarmReadInput()/SYS_AlarmWriteOutput()
         |
         |
        \ / 
    SYS_AlarmClose()
    
*******************************************************************************/
#ifndef SYS_ALARM_H 
#define SYS_ALARM_H 

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/


/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/

/*******************************************************************************
  Function:     SYS_AlarmOpen
  Description:  打开alarm字符设备
  Input:        无
  Output:       无
  Return:       ~NULL: 操作成功
                NULL: 操作失败
  Others:       无
*******************************************************************************/
void *SYS_AlarmOpen(void);

/*******************************************************************************
  Function:     SYS_AlarmGetInput
  Description:  获取报警输入通道个数
  Input:        - hAlarm: 报警设备文件描述符
  Output:       无
  Return:       >=0: 操作成功
                <0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_AlarmGetInput(void *hAlarm);

/*******************************************************************************
  Function:     SYS_AlarmGetOutput
  Description:  获取报警输出通道个数
  Input:        - hAlarm: 报警设备文件描述符
  Output:       无
  Return:       >=0: 操作成功
                <0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_AlarmGetOutput(void *hAlarm);

/*******************************************************************************
  Function:     SYS_AlarmReadInput
  Description:  读取报警输入通道状态
  Input:        - hAlarm: 报警设备文件描述符
                - pData: 输入状态值
  Output:       
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_AlarmReadInput(void *hAlarm, unsigned long *pData);

/*******************************************************************************
  Function:     SYS_AlarmWriteOutput
  Description:  写报警输出通道状态
  Input:        - hAlarm: 报警设备文件描述符
                - pData: 输入状态值
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_AlarmWriteOutput(void *hAlarm, unsigned long *pData);

/*******************************************************************************
  Function:     SYS_AlarmClose
  Description:  关闭alarm字符设备
  Input:        - hAlarm: 报警设备文件描述符
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_AlarmClose(void *hAlarm);
 

#ifdef __cplusplus
}
#endif
#endif // SYS_ALARM_H